package cau.se.project.method;

import cau.se.project.data.method.RowControl;

public interface DSMControl {
	
	/**
	 * 행을 만든다
	 * @param parent 부모 노드
	 * @param name 행의 이름
	 * @return
	 */
	public RowControl
		makeRow(String name);
	
	/**
	 * 해당 행을 삭제한다
	 * @param row 삭제할 행
	 */
	public void
		removeRow(RowControl row);
	
	/**
	 * 행을 삽입한다
	 * @param rowInsert 삽입할 row
	 * @param rowPosition 삽입될 위치에 있는 행, null이면 맨 마지막
	 */
	public void
		insertRow(RowControl rowInsert, RowControl rowPosition);
	
	/**
	 * 행렬 크기를 반환한다
	 * @return
	 */
	public int
		getSize();
	
	/**
	 * 해당 인덱스의 row를 반환한다
	 * @param i
	 * @return
	 */
	public RowControl
		getRow(int i);
	
	/**
	 * 이름으로 row를 찾는다
	 * @param name
	 * @return
	 */
	public RowControl
		findRowByName(String name);
	
	/**
	 * 2차원 행렬로 변환한다
	 * @return
	 */
	public int[][] 
		toArray();
	
	/**
	 * 배열정보 출력한다
	 */
	public void
	 	print();
}
